iT邦幫忙

2022 iThome 鐵人賽

DAY 4
1
Modern Web

Laravel 9 漫遊,享受魔法般的極速網頁開發體驗系列 第 4

Day 04:基本的測試教學!怎麼用 Laravel Sail 運作自動化測試

  • 分享至 

  • xImage
  •  

相信很多人都已經看過 Laravel 6 自動化測試的教學,所以這邊講到自動化測試,應該已經是各位讀者意料之中的事情了。

不過,我們這次沒有在本機安裝 PHP!這下要怎麼透過 PHP 執行測試呢?

不用擔心。這個部分,Laravel Sail 已經幫我們都想好了。

我們只需要先將網路服務運作起來

./vendor/bin/sail up

然後,在另一個指令列畫面內,我們透過 sail 來幫我們執行服務裡面的 PHP

$ ./vendor/bin/sail php -v
PHP 8.1.3 (cli) (built: Feb 21 2022 14:48:58) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.3, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.3, Copyright (c), by Zend Technologies
    with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans

這樣,雖然我們的本機環境內,不一定有安裝 PHP,但是我們可以在服務裡面,直接執行 PHP 的指令!

用類似的邏輯,我們也可以直接運作測試

$ ./vendor/bin/sail test

   PASS  Tests\Unit\ExampleTest
  ✓ that true is true

   PASS  Tests\Feature\ExampleTest
  ✓ the application returns a successful response

  Tests:  2 passed
  Time:   1.09s

這邊各位讀者可以看到,我們不僅僅是透過 sail 執行測試,而且測試的說明文字比起之前,要清楚了很多!

我們先來看看 Tests\Unit\ExampleTest 測試程式的內容

<?php

namespace Tests\Unit;

use PHPUnit\Framework\TestCase;

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function test_that_true_is_true()
    {
        $this->assertTrue(true);
    }
}

這邊我們發現,函數的命名就清楚地說明了內容的意圖,並且在顯示測試結果的時候,會將原本的底線分段,改變成空白分隔文字。這樣一來,我們在閱讀測試結果的時候,就會更加清楚了。

Tests\Feature\ExampleTest 跟之前類似,判斷 / 路徑要拿到 status 為 200 的成功回傳

<?php

namespace Tests\Feature;

// use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;

class ExampleTest extends TestCase
{
    public function test_the_application_returns_a_successful_response()
    {
        $response = $this->get('/');

        $response->assertStatus(200);
    }
}

框架預設提供的自動化測試,就討論到這邊!明天我們來討論如何撰寫出我們自己的自動化測試!


上一篇
Day 03:撰寫畫面與設計畫面
下一篇
Day 05:魔法般的建立自動化測試,想好函數名稱反而最難?
系列文
Laravel 9 漫遊,享受魔法般的極速網頁開發體驗30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言